package com.scrcu.core.batch.entity;

import com.scrcu.core.batch.constant.BatchConstants;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * 批量信息
 * 
 * @author Mac_J
 *
 */
@Setter
@Getter
public class BatchInfo implements Serializable {

	protected static final long serialVersionUID = -26631754680228100L;

	/**
	 * 批量ID
	 */
	private String id;

	/**
	 * 所属分组（业务群），对应服务的分组
	 */
	private String catalog;

	/**
	 * 批量编号
	 */
	private String code;

	/**
	 * 批量名称
	 */
	private String name;

	/**
	 * 失败处理，两位数字，个位为策略，十位及以上为尝试次数
	 */
	private short failable;

	/**
	 * 批量的冻结时间（两次调起的间隔时间），单位：分钟
	 */
	private int freeze = BatchConstants.INFO_FREEZE_NONE;

	/**
	 * 超时时间，单位分钟
	 */
	private int timeout;

	/**
	 * 用于指定初始参数
	 */
	private String params;

	/**
	 * 批量实现类
	 */
	private String impl;

	/**
	 * 定时计划CRON表达式
	 */
	private String cron;

	/**
	 * 定时计划开始时间
	 */
	private String startTime;

	/**
	 * 定时计划终止时间
	 */
	private String stopTime;

	/**
	 * 停用还是启用
	 */
	private short status = BatchConstants.INFO_STATUS_DISABLE;

	/**
	 * QuartzJob类 com.scrcu.core.batch.job.TestInterruptableJob
	 */
	private String job;

	/**
	 * 尝试续跑的时间间隔，单位分钟
	 */
	private int period;

	/**
	 * 批量描述
	 */
	private String memo;

	public String toString() {
		return new StringBuilder(catalog).append("/").append(code).toString();
	}

}
